perm filename DRAW.F4[DRW,LCS]3 blob
sn#396828 filedate 1978-11-19 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 C***** FOLLOWING IS FILE 'DRAW.CMD' **********
C00013 ENDMK
C⊗;
C***** FOLLOWING IS FILE 'DRAW.CMD' **********
C*** DRAW[DRW,LCS],MSSIO[NEW,LCS],CB[DRW,LCS]
C*** ,DRAWSM[DRW,LCS],DPYIT[DRW,LCS],DREDIT[DRW,LCS],FILLER[DRW,LCS]
C*** ,CURSOR[MSS,LCS],SUBSLM[DRW,LCS]
C 'G' OR <CR> = GET. 'A'=ADD TO COMBINED FILE.
C PC=PLOT PX=XGP(→PLOT.BIN) PXS,PCS=PLOT SMOOTHED CONTURE
C PXZ,PCZ=PLOT SMOOTHED CONTURE AND FILL IT.
C IN DRAW SECTION: J=JUMP(INVIS. VECT.)
C F=JUMP AND BEGIN FILL SECTION. FX=EXIT AND FILL ALL.
C SINGLE ITEM IS RESTRICTED TO 350 WDS. 10 ITEMS OR 350 WDS PER FILE.
C 'Q' MAKES CURRENT DPY IN BACKGROUND ON POG2
COMMON /RC/MCLEF(400),IST(4000)
COMMON /FL/IC,N,NQ,RZ,IXRX,XGP,RXGP
COMMON/ZN/SCLEF(400,2),DDD /ED/KED,NEXT,NN,NX,NY,J
COMMON XX(100),G(100),NJ,QF(512),RF(512),S(100),K
DIMENSION JCLEF(10),KCLEF(10),NMLST(10),JST(1)
COMMON/NFF/NF(513) /LL/LL /RZ/RSZ,IPLT,RJB,CENTR
COMMON/LETS/LETS(12)
EQUIVALENCE (MM,SCLEF(1,1)),(JCLEF,IST(1490)),(NM,IXRX)
1 ,(GRID,IST(4000)),(KCLEF,IST(1500))
1 ,(NMLST,IST(1510)),(JST,IST(500))
1,(LETS(1),LG),(LETS(2),LS),(LETS(3),LM),(LETS(4),LD)
1,(LETS(5),LR),(LETS(6),LP),(LETS(7),LA),(LETS(8),LF)
1,(LETS(9),LE),(LETS(10),LZ),(LETS(11),LQ),(LETS(12),LC)
DATA LETS/'G','S','M','D','R','P','A','F','E','Z',
1'Q','C'/
DATA RJB/-20./,CENTR/-26./
RSZ=0
39 MCLEF(1)=0
MM=0
IPLT=0
IPLTX=-1
K=1
91 TYPE 100
55 FORMAT(I,2F)
50 FORMAT(3A1)
XSZ=RSZ
ACCEPT 55,J,RSZ,GRID
IF(RSZ.EQ.0)RSZ=XSZ
MORE=-1
REREAD 50,N,JC,JS
IF(RSZ.EQ.0)RSZ=9.0
IF(GRID.NE.0.AND.N.NE.'P')CALL GRIDS
DO 191 K=1,12
C G S M D R P A F E Z
191 IF(LETS(K).EQ.N)GO TO(30,30,32,33,32,30,36,79,38,39,
1 56)K
C Q
IF(N.NE.' ')TYPE 391
GO TO 50
391 FORMAT(' UNKNOWN COMMAND'/)
C PXS,PCS=SMOOTH ONLY; PXZ,PCZ=SMOOTH AND FILL
C TO SAVE SIZE FACTOR WHEN REDRAWING.
1 IF(N.EQ.'V')CALL CNVT
C V=CONVERT FROM OLD FORMAT TO NEW.
C FOR ROTATION OR MOVING AND DISTORTING ENTIRE PICTURE
C FILLS IT.
C 'Q' MAKES CURRENT DPY IN BACKGROUND ON POG2
33 IF(JS.NE.'L')GO TO 38
N='Z'
C DEL=DELETE FROM COMB. FILE. (JS='L')
GO TO 36
38 KED=N
MM=MCLEF(1)
IF(MM.NE.0)GO TO 92
C ADD TO DRAWING?
GO TO 3
56 CALL POG2
CALL RDRAW(2,MCLEF(1),MCLEF)
CALL DPYOUT(2)
CALL POG1
GO TO 91
36 CALL CMBN
GO TO 111
32 CALL SHIFT(MCLEF(2),MCLEF(1),N)
J=1
JC=0
GO TO 333
291 FORMAT(A2,A5)
30 REREAD 291,NM,NM
IF(JC.EQ.LM)NM=' '
IF(NM.NE.' ')GO TO 293
130 TYPE 41
IF(JC.EQ.'M')GO TO 194
IF(N.EQ.'S')GO TO 194
MCLEF(1)=0
MM=0
IPLTX=-1
K=1
194 IF(JC.EQ.'M')MORE=0
JQ=JC
JC=0
JM=1
IF(MCLEF(1).EQ.0)GO TO 193
JM=MCLEF(1)+1
193 ACCEPT 10,NM,PASS
IF(NM.EQ.' ')NM=LASTNM
IF(NM.EQ.' ')GO TO 91
IF(NM.EQ.'B'.OR.NM.EQ.'99')GO TO 91
C 'B' OR '99' WILL BACKUP
293 IF(N.NE.'S')LASTNM=NM
IF(N.EQ.'S')GO TO 40
IF(LOOKF(NM).EQ.0)GO TO 130
C 'FAIL' ROUTINE TO CHECK ON LOOKUP
CALL RDSAV(KCLEF,NMLST,M,NM,JST,-1)
C -1=READ
C CAN'T USE 'GM' WITH 'COMBINED' FILE.
J=1
IF(KCLEF(2).EQ.0)GO TO 290
TYPE 1100
ACCEPT 55,J
J=J+1
C ITEMS ARE NUMBERED 0 THROUGH 9 (10 ITEMS).
IF(J.GT.10)GO TO 191
290 IC=KCLEF(J)+JST(KCLEF(J))-1
TYPE 110,IC
IF(IC.GT.350)TYPE 1110
60 JZ=1
IF(MORE.EQ.0)JZ=JM
L=KCLEF(J)-1
M=JST(L+1)+JZ-1
IF(MORE.NE.0)GO TO 161
M=M-1
L=L+1
161 DO 61 K=JZ,M
L=L+1
61 MCLEF(K)=JST(L)
MCLEF(1)=M
1100 FORMAT(' ITEM NUM?'/)
700 FORMAT(' RESET X-Y POS. ',$)
555 FORMAT(2F)
7 IF(MORE)GO TO 70
DO 771 K=2,JM-1
771 IF(MCLEF(K).GE.200000000)GO TO 772
GO TO 70
C PUTS FILLER TO END
C MOVES OUTLINE UP FRONT
772 M=MCLEF(1)
DO 773 L=K,JM
M=M+1
773 MCLEF(M)=MCLEF(L)
K=JM-K
1774 DO 774 L=JM,M
774 MCLEF(L-K)=MCLEF(L)
GO TO 3
70 IF(N.NE.'P')GO TO 3
IXRX=-1
IF(JQ.NE.'X')IXRX=0
C 0=SEND IT TO CALCOMP
TYPE 700
ACCEPT 555,X,Y
IF(X.NE.0)RJB=X/RSZ
IF(Y.NE.0)CENTR=Y/RSZ
C TYPE .001, .001 TO SET POS. TO 0, -20, -26 IS ORIGINAL.
IF(IPLTX)CALL PLOTS(0)
C DO I NEED THIS?
IF(GRID.GT.0)CALL GRIDS
IPLTX=0
IPLT=-1
3 IF(N.NE.'D')MM=0
C RESET IF NOT GOING TO DRAWIT
333 IF(N.EQ.'P')GO TO 337
CALL DPYSET(1,IST,4000)
CALL DPYBRT(4)
NIST=IST(2)
IF(N.GE.0)GO TO 337
IF(N.EQ.'G')GO TO 337
IF(N.EQ.'M')GO TO 337
IF(N.NE.'R')GO TO 92
337 IF(JS.EQ.'Z')GO TO 306
IF(JS.NE.'S')GO TO 338
CALL SMOOTH(JS)
GO TO 436
338 IC=-1
MM=1
DO 335 K=2,MCLEF(1)
IF(MCLEF(K).LT.200000000)GO TO 335
IC=K
GO TO 334
C FOR 1ST LOC. OF MCLEF IN FILLER
335 CONTINUE
334 CALL RDRAW(2,MCLEF(1),MCLEF)
CALL DPYOUT(1)
NIST=IST(2)
GO TO 436
C NO FILLER
79 IF(IC)GO TO 91
C IC=-1 IF NO FILLER WAS REQUESTED WHILE DRAWING.
JZ=N
KK=0
IF(JC.NE.'S')GO TO 206
C TYPE 'FS' TO FILL AND SMOOTH
306 CALL SMOOTH(0)
C SMOOTHS AND FILLS
GO TO 436
206 RR=RSZ
DO 205 J=IC,MCLEF(1)
CALL UNPACK(J,M,N,MCLEF)
KK=KK+1
NF(KK)=0
IF(LL.GE.100000000)NF(KK)=3
QF(KK)=(M+RJB)*RR
205 RF(KK)=(N+CENTR)*RR
NF(1)=KK
CALL FILLQ(QF,RF,NF)
436 IF(JZ.EQ.'P')CALL PLOT(0,0,3)
GO TO 91
66 TYPE 666,NM
GO TO 91
666 FORMAT(' MORE THAN ONE ITEM IN FILE ',A5/)
336 FORMAT(' SMOOTH? ',$)
10 FORMAT(A5,F)
5 FORMAT(12I)
100 FORMAT(' G=GET, GM=GET MORE, S=SAVE, D=DRAW, M=MOVE, R=ROTATE,'/'
1 P=PLOT, PX=XGP, A=ADD TO SAVED FILE
1, DEL=DEL. FROM FILE, Q=BACKGROUND, Z=ZERO DRAWING'/
1' F=FILL, E=EDIT, N1=SIZE, N2=1=GRID '/)
C N1=20 TO CHANGE SHAPE
92 IST(2)=NIST
CALL DRAWIT
N=0
GO TO 3
403 FORMAT(' WRITE OVER ',A5,'.DMD? ',$)
41 FORMAT(' TYPE FILE NAME'/)
C SAVES ONLY ONE PICTURE - USE 999(COMBINE) FOR UP TO 9
40 IF(LOOKF(NM).EQ.0)GO TO 402
TYPE 403,NM
ACCEPT 50,K
IF(K.EQ.'N')GO TO 191
402 NMLST(1)=NM
JCLEF(1)=1
DO 1111 K=2,10
JCLEF(K)=0
1111 NMLST(K)=' '
CALL RDSAV(JCLEF,NMLST,MCLEF(1),NM,MCLEF,0)
NQ=MCLEF(1)
111 TYPE 110,NQ
IF(NQ.GT.350)TYPE 1110
GO TO 91
CC120 FORMAT(' 9999 1 ',I4,' 0 0 0 0 0 0 0 0')
110 FORMAT(' TOTAL WDS=',I3)
1110 FORMAT(' ********************************',/
1 ' ***** WARNING - LIMIT=350 ******',/
1 ' ********************************')
END